<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of produccion_model
 *
 * @author Marlon
 */
class Produccion_model extends CI_Model {
   
    function __construct()
    {
        parent::__construct();       
    }
     
    public function buscarEstacion($iTrabajo,$user){//devuelve el idEstacion libre o de menor fecha a liberarse
        $cad="SELECT obtenerEstacion($iTrabajo,$user) as estacion  ";
        $query = $this->db->query($cad)->result_array();
     
        $que=$query[0];
        return $que['estacion']; 
    }
    public function ordeaerTarba($idLineaPed){//devuelve el idEstacion libre o de menor fecha a liberarse
        $cad="SELECT ordenarTrabajosLinea($idLineaPed) as ok;";
        $query = $this->db->query($cad)->result_array();
        $que=$query[0];
        return $que['ok']; 
    }
    public function estaciones($idEsta){
        $cad="SELECT es.idEstacion as idEst, tr.Nombre as nom 
        FROM centraltrabajo ct,estacion es, trabajo tr 
        where ct.IdCentral=es.IdCentralTrabajo and es.idTrabajo=tr.idTrabajo and es.idEstacion=$idEsta";
        return $this->db->query($cad)->result_array();
    }
    public function obtenerbloque($user){//devuelve el idEstacion libre o de menor fecha a liberarse
        $arreglo=array();
        $cad="SELECT es.idEstacion as idEst, tr.Nombre as nom, es.idTrabajo FROM centraltrabajo ct,estacion es, trabajo tr where ct.IdCentral=es.IdCentralTrabajo and es.idTrabajo=tr.idTrabajo and ct.IdUsuario=$user order by 3";
        $estaciones = $this->db->query($cad)->result_array();
       
        foreach($estaciones as $estacion){
            $cad="SELECT tr.idTrabajoxLineaPedido as codi,lin.Color as col, tr.IdLineaPedido as Linea,
                tr.HorasProgramadas as Horas,lin.NombreItem as nom,lin.Cantidad as cant,tr.FechaInicio as Fi,tr.FechaFin as Ff 
                    FROM trabajoxlineapedido tr, estacion es, lineapedido lin 
                    where lin.IdLineaPedido=tr.IdLineaPedido and es.idEstacion=tr.idEstacion and es.idEstacion=".$estacion['idEst']." order by Orden asc";           
           
            $grupos = $this->db->query($cad)->result_array();
            $bloques=array();
            foreach($grupos as $grup){
                if($grup['Fi']!="" && $grup['Ff']!="" ){
                    $aux=array('codi'=>$grup['codi'],'Color'=>$grup['col'],'Horas'=>$grup['Horas'],'cant'=>$grup['cant'],'nom'=>$grup['nom'],'Linea'=>$grup['Linea'],'start'=>$grup['Fi'],'end'=>$grup['Ff']);
                    array_push($bloques,$aux);
                }
                
            }
//            if(count($bloques)!=0){
                $auxx=array('label'=>'EST'.$estacion['idEst'].':  '.$estacion['nom'],'bloques'=>$bloques);              
                array_push($arreglo,$auxx);
//            }            
        }        
        return $arreglo; 
    }
    public function obtenertrabajos($idUsuer){
        $cad="SELECT tl.IdLineaPedido as Linea,lin.Color as col,ped.FechaEntrega as d, 
        tl.FechaInicio as Ini, tl.FechaFin as C, tl.Importancia as w,
        tl.IdTrabajoxLineaPedido as id,tl.Orden as ord,tl.predescesora as pred, idEstacion as est,
        tl.HorasProgramadas as Horas,lin.NombreItem as nom,lin.Cantidad as cant 
        from pedido ped, lineapedido lin, trabajoxlineapedido tl where ped.IdPedido=lin.IdPedido and 
            tl.Estado=1 and lin.IdLineaPedido=tl.IdLineaPedido and ped.IdUsuario=$idUsuer";
        return $this->db->query($cad)->result_array();
    }
    public function actualizaLinea($datos,$codLinea){
        $this->db->where('IdLineaPedido', $codLinea);
        $this->db->update('LineaPedido', $datos); 
    }
    public function actualizarEstacion($dato,$codEstacio){
         $this->db->where('idEstacion', $codEstacio);
        $this->db->update('estacion', $dato); 
    }
    public function gurdarTrabajoxItem($datos){
        $this->db->insert('TrabajoxLineaPedido',$datos);
        return $this->db->insert_id();
    }
    public function actuTrabajoxItem($id,$datos){        
        $this->db->where('IdTrabajoxLineaPedido', $id);
        $this->db->update('TrabajoxLineaPedido', $datos); 
    }
    public function obtenerEstaciones($user){
        $cad="select distinct est.idEstacion as id 
        from estacion est, centraltrabajo ct where ct.IdCentral=est.IdCentralTrabajo
             and ct.IdUsuario=$user order by 1 asc";
         return $this->db->query($cad)->result_array();
    }
    public function todasEstaciones($user){
        $cad="SELECT es.idEstacion as idEst, tr.Nombre as nom,es.idTrabajo FROM centraltrabajo ct,estacion es, trabajo tr where ct.IdCentral=es.IdCentralTrabajo and es.idTrabajo=tr.idTrabajo and ct.IdUsuario=$user order by 3";
        return $this->db->query($cad)->result_array();
    }
    public function guardarMejoraTemp($user,$mejorada){
         $plan=array('IdUsuario'=>$user,'FechadelPlan'=>date('Y-m-d H:i:s'));
         $this->db->insert('planmejorado',$plan);
        $idPLan= $this->db->insert_id();
        foreach($mejorada as $fila){
            foreach($fila as $trabajo){
                $trabajo=array('IdPlanMejorado'=>$idPLan,'IdTrabajoxLineaPedido'=>$trabajo['id'],
                    'FechaInicio'=>$trabajo['Ini'],
                    'FechaFin'=>$trabajo['C']);
                $this->db->insert('planxtrabajotempo',$trabajo);
            }
        }
        return $idPLan;
    }
    public function guardarNuevoPlan($idPlan){
        $cad="select * from planxtrabajotempo where IdPlanMejorado=$idPlan";
        $trabajos=$this->db->query($cad)->result_array();
        foreach($trabajos as $trabajo){
            $datos=array('FechaInicio'=>$trabajo['FechaInicio'],'FechaFin'=>$trabajo['FechaFin']);
            $this->db->where('IdTrabajoxLineaPedido', $trabajo['IdTrabajoxLineaPedido']);
            $this->db->update('trabajoxlineapedido', $datos); 
        }
        
    }
    public function misEstaciones($user){
        $cad="SELECT es.FechaLiberacion as Fin ,es.idEstacion as cod, tr.Nombre as NomTrabajo, categ.Nombre as NomCentro, concat(per.Nombres,' ' ,per.Apellidos) as 
            NomPersona
            FROM centraltrabajo ct,estacion es, trabajo tr, categoriatrabajo categ, persona per
            where categ.idCategoriaTrabajo=ct.idCategoriaTrabajo and ct.IdCentral=es.IdCentralTrabajo and es.idTrabajo=tr.idTrabajo 
            and per.IdPersona=es.IdTrabajador  and ct.IdUsuario=$user";        
        return $this->db->query($cad)->result_array();
    }
    public function trabajoEstacion($estacion){
        $cad="select sum(HorasTrabajadas) as tot
            from trabajoxlineapedido 
            where idEstacion=$estacion ";
        return $this->db->query($cad)->result_array();
    }
   public function equipo($idEstacion){
       $cad="select equi.Nombre as equipo from estacion es, equipo equi where equi.IdEquipo=es.IdEquipo and es.IdEstacion=$idEstacion";
       return $this->db->query($cad)->result_array();       
   }
   public function seguimiento($user){
        $cad="SELECT tr.Nombre as NomTrabajo, categ.Nombre as NomCentro, concat(per.Nombres,' ' ,per.Apellidos) as 
            NomPersona, tl.IdTrabajoxLineaPedido as idTrab,tl.Estado as estado,tl.HorasTrabajadas as Horas, tl.PorcentajeAvance as Porce
            FROM centraltrabajo ct,estacion es, trabajo tr, categoriatrabajo categ, persona per,trabajoxlineapedido tl
            where categ.idCategoriaTrabajo=ct.idCategoriaTrabajo and ct.IdCentral=es.IdCentralTrabajo and es.idTrabajo=tr.idTrabajo 
            and per.IdPersona=es.IdTrabajador and tl.idEstacion=es.idEstacion  and ct.IdUsuario=$user";        
        return $this->db->query($cad)->result_array();
    }
    public function actualizarTrabajos($dato,$codTrab){
        $this->db->where('IdTrabajoxLineaPedido', $codTrab);
        $this->db->update('trabajoxlineapedido', $dato);
    }
   
}
?>
